package utility

import (
	"context"
	"gin_demo/internal/consts"
	"log"

	"github.com/go-redis/redis/v8"
)

func InitRedis() *redis.Client {
	client := redis.NewClient(&redis.Options{
		Addr:     consts.App.Configuration.Redis.Addr + ":" + consts.App.Configuration.Redis.Port,
		Password: consts.App.Configuration.Redis.Password,
		DB:       consts.App.Configuration.Redis.DB,
	})

	ping := client.Ping(context.Background())
	if ping.Err() != nil {
		consts.App.Log.Error(ping.Err().Error())
		log.Fatalf("redis初始化错误：%s\v", ping.Err().Error())
		return nil
	}
	return client
}

func RedisSet(key, value string) bool {
	err := consts.App.Redis.HSet(context.Background(), "token", key, value).Err()
	if err != nil {
		consts.App.Log.Error(err.Error())
		return false
	}
	return true
}

func RedisGet(key string) (string, error) {
	result, err := consts.App.Redis.HGet(context.Background(), "token", key).Result()
	if err != nil {
		consts.App.Log.Error(err.Error())
		return "", err
	}

	return result, nil
}
